# Python列表变形记：元素改造怎么玩？

# [钛妹]: 列表元素能像橡皮泥随便捏吗？
# [钛妹]: 批量修改会不会把列表搞爆炸？
# [钛妹]: 钛哥快教安全改造秘籍！

# [钛哥]: 单点修改超简单！找准索引直接换
shopping_list = ["苹果", "牛奶", "面包"]
shopping_list[1] = "酸奶"
print(shopping_list)  # ['苹果','酸奶','面包']

# [钛妹]: 想换掉连续多个元素怎么办？
# [钛哥]: 切片范围替换！新老元素数可不同
colors = ["红", "橙", "黄", "绿", "蓝"]
colors[1:3] = ["粉", "紫"] 
print(colors)  # ['红','粉','紫','绿','蓝']

# [钛哥]: 新元素比老的多？自动扩容！
fruit_basket = ["苹果", "香蕉", "橙子"]
fruit_basket[1:2] = ["芒果","葡萄"]
print(fruit_basket)  # ['苹果','芒果','葡萄','橙子']

# [钛妹]: 要是新元素更少会怎样？
# [钛哥]: 列表会收缩！看这个例子
numbers = [1, 2, 3, 4]
numbers[1:3] = [99]
print(numbers)  # [1,99,4]

# [钛妹]: 不想覆盖原有元素怎么插队？
# [钛哥]: insert()方法超贴心！原元素后移
pets = ["猫", "狗", "龟"]
pets.insert(1, "兔")
print(pets)  # ['猫','兔','狗','龟']

# [钛哥]: 重点总结！五大改造技巧：
# 1.单元素替换：list[索引]=新值
# 2.范围替换：list[start:end]=新列表
# 3.多换少：原范围收缩 numbers[1:3]=[9]
# 4.少换多：原范围扩展 colors[1:3]=[...]
# 5.插入不替换：list.insert(位置,元素)

# [钛妹]: 原来修改列表像拼积木一样灵活！
# [钛妹]: 现在能精准控制每个元素的去留啦！
# [钛妹]: 再也不用担心误删邻居元素了~

# [钛妹]: 对了各位！持续学习才是硬道理！点赞关注不迷路！